/**
 *====================================================
* 文件名称: FinanceMoneyStatementService.java
 * 修订记录：
  * No    日期				作者(操作:具体内容)
  * 1.    2015年12月17日	chenxy(创建:创建文件)
  *====================================================
  * 类描述：(说明未实现或其它不应生成javadoc的内容)
  */
package com.yuexunit.finance.project.service;

import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;

import com.yuexunit.finance.project.entity.FinanceMoneyStatementEntity;
import com.yuexunit.finance.project.entity.lexicon.StatementStateEnum;
import com.yuexunit.page.PageCriteria;
import com.yuexunit.page.PageList;

/**
 * @ClassName: FinanceMoneyStatementService
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @author chenxy
 * @date 2015年12月17日 09:54:08
 */
public interface FinanceMoneyStatementService {

	/** 新建账户流水 */
	public Long createFinanceMoneyStatement(FinanceMoneyStatementEntity entity);

	/** 更新账户流水 */
	public void renovateFinanceMoneyStatement(FinanceMoneyStatementEntity persist);

	/** 获取帐户流水 */
	public FinanceMoneyStatementEntity inquireFinanceMoneyStatementDetail(Long moneyStatementId);

	/** 获取帐户流水 */
	public List<FinanceMoneyStatementEntity> inquireFinanceMoneyStatementList(Collection<Long> moneyStatementIds);
	
	/** 删除帐户流水 */
	public void deleteFinanceMoneyStatement(Long moneyStatementId);

	/** 查询帐户流水列表 */
	public PageList<FinanceMoneyStatementEntity> inquireFinanceMoneyStatementPageList(Long financeId, String[] statementSource, Long receiptTenantId, String receiptName, Long disbursementTenantId, String disbursementName,
			String financeNumber, Integer beginStatementDate, Integer endStatementDate, BigDecimal minSourceAmount, BigDecimal maxSourceAmount, StatementStateEnum statementState, String statementNumber, Boolean receiptVerifiState,
			Boolean disbursementVerifiState, Integer productType, PageCriteria page);
	
	/** 查询帐户流水列表 */
	public List<FinanceMoneyStatementEntity> inquireFinanceMoneyStatementList(String[] statementSource, Integer beginStatementDate, Integer endStatementDate);
	
	/** 查询帐户流水列表 */
	public List<FinanceMoneyStatementEntity> inquireFinanceMoneyStatementList1(Long enterpriseId, String[] statementSource, Integer beginStatementDate, Integer endStatementDate);

	/** 获取收付款单下的流水列表 */
	public List<FinanceMoneyStatementEntity> inquireFinanceMoneyStatementBillReceivableList(Long billReceivableId);
	
	/** 获取帐户流水 */
	public FinanceMoneyStatementEntity inquireFinanceMoneyStatementBySourceId(Long statementSourceId);

	/** 获取帐户流水 */
	public FinanceMoneyStatementEntity inquireFinanceMoneyStatementDetail(String[] statementSource, Long financeId);
	
	/** 获取帐户流水 */
	public FinanceMoneyStatementEntity inquireFinanceMoneyStatementDetail1(String[] statementSource, Long financeId);

	/** 获取收付款方下的流水信息 */
	public List<FinanceMoneyStatementEntity> inquireFinanceMoneyStatementList(Long receiptTenantId, Long disbursementTenantId, Long[] moneyStatementId);

	/** 获取融资申请下的流水信息 */
	public List<FinanceMoneyStatementEntity> inquireFinanceMoneyStatementList(Long financeId);
	
	/** 待确认的流水信息 */
	public List<Long> countreceiptConfirm();

	/** 查询收款流水信息 */
	public List<FinanceMoneyStatementEntity> inquireFinanceMoneyReceiptStatementList(Long pickupId);
	
	/** 查询收款流水信息 */
	public List<FinanceMoneyStatementEntity> inquireFinanceMoneyReceiptStatementList(Long receiptTenantId, Long financeId, String[] statementSources);

	/** 查询付款流水信息 */
	public List<FinanceMoneyStatementEntity> inquireFinanceMoneyDisbursementStatementList(Long disbursementTenantId, Long financeId, String[] statementSources);

	/** 查询收款流水信息 */
	public List<FinanceMoneyStatementEntity> inquireExceptFinanceMoneyReceiptStatementList(Long receiptTenantId, Long financeId, String[] statementSources);

	/** 查询付款流水信息 */
	public List<FinanceMoneyStatementEntity> inquireExceptFinanceMoneyDisbursementStatementList(Long disbursementTenantId, Long financeId, String[] statementSources);

	/** 查询待收款流水 */
	public List<Long> countWaitReceipt(Long tenantId);
	
	/** 查询待放款流水 */
	public List<Long> countWaitLoan(Long tenantId);
}
